package g_genericity_Landlords;

import java.util.ArrayList;

import static java.util.Collections.shuffle;

/**
 * 测试类01，用于演示土地公游戏的发牌过程。
 * @author Cheng-02
 * @version V1.0
 * @Package g_genericity_Landlords
 * @date 2024/4/10 下午5:56
 */
public class Test01 {
    public static void main(String[] args) {
        // 创建存储花色的ArrayList
        ArrayList<String> color = new ArrayList<>();
        color.add("♠");
        color.add("♥");
        color.add("♣");
        color.add("♦");

        // 创建存储牌号的ArrayList
        ArrayList<String> words = new ArrayList<>();
        words.add("A");
        words.add("2");
        words.add("3");
        words.add("4");
        words.add("5");
        words.add("6");
        words.add("7");
        words.add("8");
        words.add("9");
        words.add("10");
        words.add("J");
        words.add("Q");
        words.add("K");

        // 创建存储花色和牌号组合的ArrayList
        ArrayList<String> poker = new ArrayList<>();
        for (String word : words) {
            for (String c : color) {
                String pokerNumber = c + word;
                poker.add(pokerNumber);
            }
        }
        // 添加特殊牌
        poker.add("😊");
        poker.add("☺");

        // 打乱牌的顺序
        shuffle(poker);

        // 创建玩家和底牌的ArrayList
        ArrayList<String> Player1 = new ArrayList<>();
        ArrayList<String> Player2 = new ArrayList<>();
        ArrayList<String> Player3 = new ArrayList<>();
        ArrayList<String> TrumpCard = new ArrayList<>();

        // 发牌
        for (int i = 0; i < poker.size(); i++) {
            String pokerNumber1 = poker.get(i);
            // 底牌处理
            if (i > 50) {
                TrumpCard.add(pokerNumber1);
            } else {
                // 发给玩家
                if (i % 3 == 0) {
                    Player1.add(pokerNumber1);
                } else if (i % 3 == 1) {
                    Player2.add(pokerNumber1);
                } else if (i % 3 == 2) {
                    Player3.add(pokerNumber1);
                }
            }
        }

        // 打印所有玩家和底牌的牌面
        System.out.println("p1:" + Player1);
        System.out.println("p2:" + Player2);
        System.out.println("p3:" + Player3);
        System.out.println("底牌:" + TrumpCard);
    }
}
